home *** CD-ROM | disk | FTP | other *** search
/ Practical Internet Web Designer 86 / PIWD86.iso / pc / contents / dreamweaver / software / dwmx2004.exe / Disk1 / data1.cab / Configuration_En / Commands / Flash Button.js < prev    next >
Encoding:
JavaScript  |  2003-09-05  |  20.0 KB  |  595 lines

  1. // Copyright 2000, 2001, 2002, 2003 Macromedia, Inc. All rights reserved.
  2.  
  3. //*************** GLOBAL CONSTANTS *****************
  4. var helpDoc = MM.HELP_objFlashButton;
  5. var TYPE_STR = "Flash Button";
  6. var STYLE_EXT_STR = "swt";
  7. var TYPE_PARAMETER = "dwType";
  8. var BUTTON_TEXT_PARAMETER = "Button Text";
  9. var BUTTON_URL_PARAMETER = "Button URL";
  10. var BUTTON_TARGET_PARAMETER = "Button Target";
  11. var BUTTON_FONT_PARAMETER = "Button Font";
  12. var BUTTON_SIZE_PARAMETER = "Button Size";
  13. var YIELD_PATH = "../Shared/MM/Images/yield.gif";
  14. var DEFAULT_SIZE = 15;
  15. var MAX_PREVIEW_WIDTH = 230;
  16. var MAX_PREVIEW_HEIGHT = 50;
  17. var MAX_FILE_LENGTH = 23;
  18. //*************** GLOBAL VARIABLES *****************
  19. // UI Elements
  20. var MENU_FONTS, MENU_TARGET;
  21. var LIST_STYLES;
  22. var TEXT_LABEL, TEXT_LINK, TEXT_BG, TEXT_SAVEAS, TEXT_SIZE;
  23. var COLORP_BG;
  24. var SWF_SAMPLE;
  25. var AREA_WARNING;
  26. // other globals
  27. var FILE_CONFIG_PATH = dw.getConfigurationPath();
  28. var FILE_BUTTON_STYLES_PATH = FILE_CONFIG_PATH + "/Flash Objects/Flash Buttons";
  29. var FILE_CURRENT_DOC_PATH;
  30. var ARRAY_TARGET_STR = new Array("","_blank","_parent","_self","_top");
  31. var REEDIT_SWF_PATH="";
  32. var FLAG_OVERWRITE = new Object();
  33. FLAG_OVERWRITE.state = false;
  34. FLAG_OVERWRITE.reEdit = false;
  35. var FILE_BUTTON_PREVIEW_PATH = FILE_CONFIG_PATH + "/Flash Objects/Flash Buttons Preview";
  36. var LAST_SIZE=DEFAULT_SIZE;
  37. //******************* API **********************
  38. function commandButtons()
  39. {
  40.    return new Array( MM.BTN_OK,  "cmdOK(); "
  41.                    , MM.BTN_Apply, "cmdApply();"
  42.                    , MM.BTN_Cancel, "cmdCancel();"
  43.                    , BTN_GetMoreStyles,'moreStyles();'
  44.                    , MM.BTN_Help, 'displayHelp()');
  45. }
  46.  
  47. function cmdOK()
  48. {
  49.   var done = insertButtonHTML();
  50.   if (done)
  51.     window.close();
  52.  
  53.   var objDOM = dreamweaver.getDocumentDOM();
  54.  
  55.   // check to see if accessibility option for media objects is turned on
  56.   prefsAccessibilityOption = dw.getPreferenceString("Accessibility", "Accessibility Media Options", "");
  57.   if(prefsAccessibilityOption == 'TRUE') {addAccessibility(objDOM);}
  58. }
  59.  
  60. function cmdApply()
  61. {
  62.  var filename = document.saveAsField.getAttribute("value");
  63.  insertButtonHTML();
  64.  FLAG_OVERWRITE.state = true;
  65.  FLAG_OVERWRITE.file = addExtention(filename, "swf");
  66. }
  67.  
  68. function cmdCancel()
  69. {
  70.   window.close();
  71. }
  72.  
  73. function moreStyles()
  74. {
  75.   dreamweaver.browseDocument(LABEL_MoreStylesURL);
  76.   window.close();
  77. }
  78.  
  79. function receiveArguments(swfPath)
  80. {
  81.   var fileName, fileObj;
  82.   if (swfPath)
  83.   {
  84.     REEDIT_SWF_PATH = swfPath;
  85.     fileObj = new File(REEDIT_SWF_PATH);
  86.     fileName = fileObj.getName();
  87.     FLAG_OVERWRITE.state = true;
  88.     FLAG_OVERWRITE.reEdit = true;
  89.     FLAG_OVERWRITE.file = fileName;
  90.   }
  91. }
  92. //***************** LOCAL FUNCTIONS  ******************
  93.  
  94. function initializeUI()
  95. {
  96.   var i, fileObj, filterFunction, targetArray,currentSwfPath, swfButtonParams;
  97.   var fileName, filesArray, fontArray;
  98.   FILE_CURRENT_DOC_PATH = dw.getDocumentPath("document");
  99.       //Global UI Controls
  100.   LIST_STYLES = new ListControl("stylesList");
  101.   MENU_TARGET = new ListControl("targetMenu");
  102.   MENU_FONTS = new ListControl("fontMenu");
  103.   TEXT_SIZE = document.sizeField;
  104.   TEXT_LABEL = document.labelField;
  105.   TEXT_LINK = document.linkField;
  106.   TEXT_BG = document.bgColorField;
  107.   TEXT_SAVEAS = document.saveAsField;
  108.   COLORP_BG = document.bgColorPicker;
  109.   SWF_SAMPLE = document.swfPreview;
  110.   AREA_WARNING = document.warningMsg;
  111.     // set the Styles list
  112.   fileObj = new File(FILE_BUTTON_STYLES_PATH);
  113.   filterFunction =  new Function("x", "return x.isFile() && (x.getExtension().toLowerCase()=='swt');");
  114.   filesArray = fileObj.listFolder(filterFunction);
  115.   if (filesArray.length>0)
  116.     LIST_STYLES.setAll(getMenuList(filesArray),filesArray);
  117.   else
  118.   {
  119.     alert(MSG_NoTemplatesFound);
  120.     window.close();
  121.     return "";
  122.   }
  123.   // set font menu
  124.   fontArray = filterFonts(dw.getSystemFontList("TrueType"));
  125.   if (!fontArray)
  126.   {
  127.     alert(MSG_NoFontsInstalled);
  128.     window.close();
  129.     return "";
  130.   }
  131.   else
  132.     MENU_FONTS.setAll(fontArray,fontArray);
  133.   TEXT_SIZE.value = DEFAULT_SIZE;
  134.     // set the Preview field
  135.   updateUI("stylesList");
  136.     // set target menu
  137.   docFrames = dw.getDocumentDOM().getFrameNames();
  138.   targetArray = ARRAY_TARGET_STR;
  139.   if (docFrames)
  140.    targetArray = targetArray.concat(docFrames);
  141.   MENU_TARGET.setAll(targetArray, targetArray);
  142.     // set the default file name
  143.   TEXT_SAVEAS.setAttribute("value",createUniqueFilename("button", getDocumentDir(FILE_CURRENT_DOC_PATH),MAX_FILE_LENGTH));
  144.   if (REEDIT_SWF_PATH)
  145.   {
  146.     REEDIT_SWF_PATH =File.getFullUrl(REEDIT_SWF_PATH, FILE_CURRENT_DOC_PATH);  // modify button does not pass in full path
  147.     swfButtonParams = SWFFile.readFile(REEDIT_SWF_PATH);
  148.     swfButtonParams.unshift("templatePath");
  149. //    if (navigator.platform != "Win32")
  150.     if (!hasDoubleByteChar(swfButtonParams[1]))
  151.       swfButtonParams[1] = unescape(swfButtonParams[1]);
  152.     if (swfButtonParams.length % 2 != 0) // if last parameter has no value array is odd
  153.       swfButtonParams.push("");
  154.     populateUI(swfButtonParams,absoluteToRelativeURL(REEDIT_SWF_PATH, FILE_CURRENT_DOC_PATH,true));
  155.   }
  156.  
  157.   TEXT_LABEL.focus();
  158.   TEXT_LABEL.select();
  159.   return "";
  160. }
  161.  
  162. function updateUI(itemName)
  163. {
  164.   var currentStyle, browseURL, colorCP, colorF,previewFile, theLink, sizeArray;
  165.   switch(itemName)
  166.   {
  167.     case "stylesList":
  168.     {
  169.       currentStyle = LIST_STYLES.getValue();
  170.       stylePath = FILE_BUTTON_STYLES_PATH + "/"+ currentStyle;
  171.       previewFile = currentStyle.replace(/.swt/,".swf");
  172.       if (DWfile.exists(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile))
  173.       {
  174.         // [gc] read in default settings from swf preview file
  175.         var defaultParams = SWFFile.readFile(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  176.         defaultParams.unshift("templatePath");
  177.         if (defaultParams.length % 2 != 0) // if last parameter has no value array is odd
  178.         defaultParams.push("");
  179.         var theFont = getValueFromParameters(BUTTON_FONT_PARAMETER, defaultParams);
  180.         theFont        = getDefaultSystemFont(theFont);
  181.         var theSize = getValueFromParameters(BUTTON_SIZE_PARAMETER, defaultParams);
  182.         if (!REEDIT_SWF_PATH && theFont )
  183.         {
  184.           if ( !MENU_FONTS.pickValue(theFont) )
  185.           {
  186.             var warnMsg = MSG_DefaultFontDoesNotExist;
  187.             warnMsg = warnMsg.replace(/%s/,theFont);
  188.             AREA_WARNING.innerHTML = createWarningMsgHTML(warnMsg, YIELD_PATH);
  189.           }
  190.           else
  191.             AREA_WARNING.innerHTML = "";
  192.         }
  193.         if (!REEDIT_SWF_PATH && theSize)
  194.           TEXT_SIZE.value = theSize/20;
  195.         sizeArray = SWFFile.getNaturalSize(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  196.         SWF_SAMPLE.setAttribute("SRC",FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  197.       }
  198.       else
  199.       {
  200.         if (AREA_WARNING.innerHTML != "")
  201.           AREA_WARNING.innerHTML = "";
  202.         sizeArray = SWFFile.getNaturalSize(stylePath);
  203.         SWF_SAMPLE.setAttribute("SRC",stylePath);
  204.       }
  205.      // resize preview area to natural size of template
  206.       if (sizeArray)
  207.       {
  208.         SWF_SAMPLE.setAttribute("WIDTH",sizeArray[0] > MAX_PREVIEW_WIDTH ? MAX_PREVIEW_WIDTH : sizeArray[0]);
  209.         SWF_SAMPLE.setAttribute("HEIGHT",sizeArray[1] > MAX_PREVIEW_HEIGHT ? MAX_PREVIEW_HEIGHT : sizeArray[1]);
  210.       }
  211.       break;
  212.     }
  213.     case "sizeField":
  214.     {
  215.       if (!isInteger(TEXT_SIZE.value))
  216.       {
  217.         TEXT_SIZE.value = LAST_SIZE;
  218.       }
  219.       else
  220.         LAST_SIZE = TEXT_SIZE.value
  221.     }
  222.     case "linkField":
  223.     {
  224.       theLink = TEXT_LINK.value;
  225.       if (isSiteRelative(theLink))
  226.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_SiteRelLinkWarning, YIELD_PATH);
  227.       else if (theLink.indexOf("file:///")!=-1)
  228.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_LocalURLLinkWarning, YIELD_PATH);
  229.       else
  230.         AREA_WARNING.innerHTML = "";
  231.       break;
  232.     }
  233.     case "saveAsField":
  234.     {
  235. //    if (TEXT_LINK.value)
  236. //      document.targetMenu.setAttribute("disabled", "false");
  237. //    else
  238. //      document.targetMenu.setAttribute("disabled", "true");
  239.       theLink = TEXT_LINK.value;
  240.       theSaveLoc = TEXT_SAVEAS.value;
  241.       if (theSaveLoc.indexOf('/') != -1){
  242.         if (isSiteRelative(theLink)){
  243.           AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_SiteRelLinkWarning, YIELD_PATH);
  244.           TEXT_LINK.focus();
  245.           TEXT_LINK.select();
  246.         }else if (isDocRel(theLink) && theLink!="#"){
  247.           AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_DocRelLinkWarning, YIELD_PATH);
  248.           TEXT_LINK.focus();
  249.           TEXT_LINK.select();
  250.         }else if (theLink.indexOf("file:///")!=-1){
  251.           AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_LocalURLLinkWarning, YIELD_PATH);
  252.           TEXT_LINK.focus();
  253.           TEXT_LINK.select();
  254.         }else{
  255.           AREA_WARNING.innerHTML = "";
  256.         }
  257.       }
  258.       break;
  259.     }
  260.     case "linkButton":
  261.     {
  262.       browseURL = dreamweaver.browseForFileURL("select",LABEL_Select, false, true);
  263.       if (browseURL)
  264.         TEXT_LINK.setAttribute("value", browseURL);
  265.       updateUI("linkField");
  266.       break;
  267.     }
  268.     case "bgColorPicker":
  269.     {
  270.       updateColorPicker("colorPicker",COLORP_BG,TEXT_BG);
  271.       break;
  272.     }
  273.     case "bgColorField":
  274.     {
  275.       updateColorPicker("colorField",COLORP_BG,TEXT_BG);
  276.       break;
  277.     }
  278.     case "saveAsButton":
  279.     {
  280.       browseURL = dreamweaver.browseForFileURL("save",LABEL_Select, false, true);
  281.       browseURL = absoluteToRelativeURL(browseURL, FILE_CURRENT_DOC_PATH,false);
  282.       if (browseURL)
  283.         TEXT_SAVEAS.setAttribute("value", browseURL);
  284.       break;
  285.     }
  286.   }
  287. }
  288.  
  289. function generateParametersArray()
  290. {
  291.   var retVal = new Array();
  292.   var theLink = TEXT_LINK.value;
  293.   if (!theLink)
  294.     theLink = "javascript:;";   // this fixes the crash on netscape when getURL=""
  295.   retVal[0] = TYPE_PARAMETER;
  296.   retVal[1] = TYPE_STR;
  297.   retVal[2] = BUTTON_TEXT_PARAMETER;
  298.   retVal[3] = TEXT_LABEL.value;
  299.   retVal[4] = BUTTON_URL_PARAMETER;
  300.   retVal[5] = theLink;
  301.   retVal[6] = BUTTON_TARGET_PARAMETER;
  302.   retVal[7] = MENU_TARGET.get();
  303.   retVal[8] = BUTTON_FONT_PARAMETER;
  304.   retVal[9] = MENU_FONTS.get();
  305.   retVal[10] = BUTTON_SIZE_PARAMETER
  306.   retVal[11] = convertPtToTwip(TEXT_SIZE.value);
  307.   return retVal;
  308. }
  309.  
  310. function createFlashTag(swfURL)
  311. {
  312.   var retVal= new Array();
  313.   var theLink = TEXT_LINK.value;
  314.   var docRelURL = absoluteToRelativeURL(swfURL, FILE_CURRENT_DOC_PATH,true);
  315.   var sizeArray = SWFFile.getNaturalSize(swfURL);
  316.   var width, height;
  317.   var bgcolor = TEXT_BG.value;
  318.  
  319.   if (sizeArray)
  320.   {
  321.     width = sizeArray[0];
  322.     height = sizeArray[1];
  323.   }
  324.   else
  325.   {
  326.     width = 32;
  327.     height = 32;
  328.   }
  329.   retVal.push('<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
  330.   retVal.push(' CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"');
  331.   retVal.push(' WIDTH="' + width + '" HEIGHT="'+ height + '">\n');
  332.   retVal.push('<PARAM NAME="movie" VALUE="' + docRelURL + '"> <PARAM NAME="quality" VALUE="high">\n' );
  333.   if (bgcolor)
  334.     retVal.push('<PARAM NAME="bgcolor" VALUE="' + bgcolor + '">\n');
  335.   retVal.push('<EMBED SRC="' + docRelURL +'"');
  336.   retVal.push(   ' QUALITY="high" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" ' +
  337.          'TYPE="application/x-shockwave-flash" ');
  338.   retVal.push('WIDTH="' + width + '" HEIGHT="'+ height +'" ');
  339.   if (bgcolor)
  340.     retVal.push('BGCOLOR="' + bgcolor + '"');
  341.   retVal.push('>' +'</EMBED>\n' + '</OBJECT>');
  342.   return  retVal.join("");
  343. }
  344.  
  345. function insertButtonHTML()
  346. {
  347.   var data, outputFilePath,templateFile,currentStyle, canCreateFile=false;
  348.   var success=false, createFileMsg;
  349.   var theLink = TEXT_LINK.value;
  350.   var fileName = TEXT_SAVEAS.value;
  351.   var dom = dw.getDocumentDOM();
  352.   var selectedNode,wasPlaying, temp1, temp2;
  353.   if (dom.canStopPlugin())
  354.   {
  355.     dom.stopPlugin();
  356.     wasPlaying = true;
  357.   }
  358.   if (fileName.charAt(0) == " ")
  359.   {
  360.     alert(MSG_FilenameStartWithSpace);
  361.     return false;
  362.   }
  363.   if (!fileName)
  364.     alert(MSG_SaveAsFieldIsEmpty);
  365.   else if ((outputFilePath = resolveFilePath(fileName,FILE_CURRENT_DOC_PATH,"swf")) == "")
  366.     alert(errMsg(MSG_InvalidFileName,fileName));
  367.   else
  368.   {
  369.     outputFilePath = truncateFileName(MAX_FILE_LENGTH, outputFilePath);
  370.     if (!checkLink(theLink,outputFilePath,FILE_CURRENT_DOC_PATH))
  371.       return false;
  372.     if (DWfile.exists(outputFilePath) && DWfile.getAttributes(outputFilePath)=="R")
  373.     {
  374.       alert(errMsg(MSG_ReadOnlyFile,outputFilePath));
  375.       return false;
  376.     }
  377.     if (!DWfile.exists(outputFilePath) || (FLAG_OVERWRITE.state == true && FLAG_OVERWRITE.file == addExtention(fileName, "swf")))
  378.       canCreateFile=true;
  379.     else if (confirm(errMsg(MSG_FileAlreadyExists, outputFilePath)))
  380.       canCreateFile=true;
  381.     if (canCreateFile==true)
  382.     {
  383.       data = generateParametersArray();
  384.       currentStyle = LIST_STYLES.getValue();
  385.       templateFile = FILE_BUTTON_STYLES_PATH + "/" + currentStyle;
  386.       MM.setBusyCursor();
  387.       
  388.       resolvedTemplatePath = resolveConfigPath(templateFile);
  389.       if (navigator.platform == "Win32")
  390.         createFileMsg = SWFFile.createFile(resolvedTemplatePath,data,outputFilePath);
  391.       else{
  392.         temp1 = (hasDoubleByteChar(templateFile)) ?   resolvedTemplatePath : escape(resolvedTemplatePath);
  393.         temp2 = (hasDoubleByteChar(outputFilePath)) ?   outputFilePath : escape(outputFilePath);
  394.         createFileMsg = SWFFile.createFile(temp1,data,temp2);
  395.       }
  396.       MM.clearBusyCursor();
  397.       if (createFileMsg=="noError")
  398.       {
  399.         if (!FLAG_OVERWRITE.reEdit){
  400.           dom.insertHTML(createFlashTag(outputFilePath), FLAG_OVERWRITE.state);
  401.         }
  402.         else
  403.         {
  404.           selectedNode = dom.getSelectedNode();
  405.           editButtonAttribute(outputFilePath,currentStyle,selectedNode);
  406. // **** next line is a hack that needs to be removed when setSelectedNode bug fixed
  407.           selectedNode.outerHTML = selectedNode.outerHTML;
  408. //        dom.setSelectedNode(selectedNode);
  409.         }
  410.         dom.notifyFlashObjectChanged();
  411.         success = true;
  412.       }
  413.       else
  414.         alert(generatorErrorMsg(createFileMsg,fileName));
  415.     }
  416.   }
  417.   if (wasPlaying)
  418.     dom.playPlugin();
  419.   return success;
  420. }
  421.  
  422. function populateUI(paramArray, fileName)
  423. {
  424.   var templatePath = getValueFromParameters("templatePath", paramArray);
  425.   var textLabel = getValueFromParameters(BUTTON_TEXT_PARAMETER, paramArray);
  426.   var theLink = getValueFromParameters(BUTTON_URL_PARAMETER, paramArray);
  427.   var theTarget = getValueFromParameters(BUTTON_TARGET_PARAMETER, paramArray);
  428.   var theFont = getValueFromParameters(BUTTON_FONT_PARAMETER, paramArray);
  429.   var theSize = getValueFromParameters(BUTTON_SIZE_PARAMETER, paramArray);
  430.   var tempFile = new File(templatePath);
  431.   var styleName = tempFile.getName();
  432.   var docDOM = dw.getDocumentDOM('document');
  433.   var bgcolor = getSelectedNodeAttr("BGCOLOR",docDOM);
  434.  
  435.   FLAG_OVERWRITE.style = tempFile.getSimpleName();
  436.   FLAG_OVERWRITE.width = getSelectedNodeAttr("WIDTH",docDOM);
  437.   FLAG_OVERWRITE.height = getSelectedNodeAttr("HEIGHT",docDOM);
  438.   if (!LIST_STYLES.pickValue(styleName))
  439.   {
  440.     if (!confirm(errMsg(MSG_TemplateNotFound, styleName)))
  441.     window.close();
  442.   }
  443.   if (!MENU_FONTS.pickValue(theFont))
  444.   {
  445.     if (!confirm(errMsg(MSG_FontDoesNotExist,theFont)))
  446.     window.close();
  447.   }
  448.   updateUI("stylesList");
  449. //  if (textLabel)
  450.     TEXT_LABEL.value = textLabel;
  451.   if (theLink && theLink !="javascript:;")
  452.     TEXT_LINK.value = theLink;
  453.   if (theTarget)  // ***** check to see if target exists
  454.     if (!MENU_TARGET.pickValue(theTarget))
  455.       {
  456.         if (!confirm(errMsg(MSG_FrameNotFound, theTarget)))
  457.           window.close();
  458.       }
  459.   TEXT_SAVEAS.value = fileName;
  460.   TEXT_SIZE.value = theSize/20;
  461.   if (bgcolor)
  462.     TEXT_BG.value = bgcolor;
  463.   updateUI('bgColorField');
  464.   return true;
  465. }
  466.  
  467. function generatorErrorMsg(createFileMsg,currentStyle,fileName)
  468. {
  469.   var generatorMsgArray = new Array("invalidData","initGeneratorFailed","outOfMemory","unknownError");
  470.   var returnMsgArray;
  471.   if ( "macos" == DWfile.getPlatform() )
  472.     returnMsgArray = new Array(MSG_InvalidData,MSG_InitGeneratorFailedMac,MSG_OutOfMemory,MSG_UnknownError);
  473.   else
  474.     returnMsgArray = new Array(MSG_InvalidData,MSG_InitGeneratorFailed,MSG_OutOfMemory,MSG_UnknownError);
  475.   var retVal = "";
  476.   if (createFileMsg == "invalidTemplateFile")
  477.     retVal = errMsg(MSG_InvalidButtonStyle,currentStyle);
  478.   else if (createFileMsg == "invalidOutputFile")
  479.     retVal = errMsg(MSG_InvalidFileName,fileName);
  480.   else
  481.   {
  482.     for (var i=0;i<generatorMsgArray.length;i++)
  483.     {
  484.       if (createFileMsg == generatorMsgArray[i])
  485.       {
  486.         retVal = returnMsgArray[i];
  487.         break;
  488.       }
  489.     }
  490.   }
  491.   return retVal;
  492. }
  493.  
  494. function editButtonAttribute(outputFilePath,currentStyle,selectedNode)
  495. {
  496.   var sizeArray = SWFFile.getNaturalSize(outputFilePath);
  497.   var bgcolor = TEXT_BG.value;
  498.   var width = sizeArray[0];
  499.   var height = sizeArray[1];
  500.   var theLink = TEXT_LINK.value;
  501.   var docRelURL = absoluteToRelativeURL(outputFilePath, FILE_CURRENT_DOC_PATH,true);
  502.   var tagsToAdd = new Array();
  503.   if (outputFilePath != REEDIT_SWF_PATH)
  504.   {
  505.     setFlashAttribute("PARAM","MOVIE",docRelURL,selectedNode,tagsToAdd);
  506.     setFlashAttribute("EMBED","SRC",docRelURL,selectedNode);
  507.   }
  508.  
  509.   var currentStyleName = currentStyle;
  510.   var index = currentStyleName.lastIndexOf(".");
  511.   if (index != -1)
  512.     currentStyleName = currentStyleName.substring(0,index);
  513.   if (currentStyleName != FLAG_OVERWRITE.style)
  514.   {
  515.     setFlashAttribute("OBJECT","WIDTH",width,selectedNode);
  516.     setFlashAttribute("OBJECT","HEIGHT",height,selectedNode);
  517.     setFlashAttribute("EMBED","WIDTH",width,selectedNode);
  518.     setFlashAttribute("EMBED","HEIGHT",height,selectedNode);
  519.   }
  520.   setFlashAttribute("EMBED","BGCOLOR",bgcolor,selectedNode);
  521.   setFlashAttribute("PARAM","BGCOLOR",bgcolor,selectedNode,tagsToAdd);
  522.   
  523.   if (tagsToAdd.length>0)
  524.     selectedNode.innerHTML = tagsToAdd.join("") + selectedNode.innerHTML;
  525. }
  526.  
  527. function getMenuItemNames(fileURL)
  528. {
  529.   var dom = dreamweaver.getDocumentDOM(fileURL);
  530.   var menuitemArray = new Array();
  531.   var retArray = new Array();
  532.  
  533.   menuitemArray = dom.getElementsByTagName("menuitem");
  534.   for (var i=0; i<menuitemArray.length; i++)
  535.   {
  536.     retArray[menuitemArray[i].getAttribute("FILE")] = menuitemArray[i].getAttribute("NAME");
  537.   }
  538.   return retArray;
  539. }
  540.  
  541. function getMenuList(fileList)
  542. {
  543.   var menuFile = FILE_CONFIG_PATH + "/Commands/Flash Button.xml"
  544.   var fileLabelHash = getMenuItemNames(menuFile);
  545.   var retArray = new Array();
  546.   var label,index;
  547.   for (var i=0; i<fileList.length;i++)
  548.   {
  549.     label = fileLabelHash[fileList[i]];
  550.     if (!label)
  551.     {
  552.       index = fileList[i].lastIndexOf(".");
  553.       if (index != -1)
  554.         label = fileList[i].substring(0, index);
  555.       else
  556.         label = fileList[i];
  557.     }
  558.     retArray.push(label);
  559.   }
  560.   return retArray;
  561. }
  562.  
  563. // get the system default font for Asian languages
  564. function getDefaultSystemFont(theFont)
  565. {
  566.     // set the default to relavant font for Double-byte languages
  567.     if ( dreamweaver.appVersion && ( dreamweaver.appVersion.indexOf('ja') != -1 || 
  568.                      dreamweaver.appVersion.indexOf('ko') != -1 || 
  569.                      dreamweaver.appVersion.indexOf('zh') != -1) ) {
  570.         if ( "macos" == DWfile.getPlatform() )
  571.             return LABEL_DefaultSystemFontMac;
  572.         else
  573.             return LABEL_DefaultSystemFontWin;
  574.     }
  575.     else 
  576.         return theFont;
  577. }
  578.  
  579. ///////////////////////////////////////////////////////////////////
  580. //  addAccessibility: called when Accessibility Option is turned on
  581. //  
  582. // receives: current document object
  583. // returns : nothing
  584. //
  585. //  Flash Options.htm dialog collects the attributes.
  586.  
  587. function addAccessibility(objDom) {
  588.    var cmdFile = dreamweaver.getConfigurationPath() + "/Commands/Flash Options.htm";
  589.    var cmdDOM = dreamweaver.getDocumentDOM(cmdFile);
  590.    
  591.    cmdDOM.parentWindow.setFormItem(objDom);
  592.    dreamweaver.popupCommand("Flash Options.htm");
  593.  
  594. }
  595.